package com.frcdi.qms.masterdata.mapper;

import com.frcdi.qms.masterdata.domain.Method;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 方法Mapper接口
 *
 * @author cell
 * @date 2023-10-16
 */
public interface MethodMapper
{
    /**
     * 查询方法
     *
     * @param methodId 方法主键
     * @return 方法
     */
    public Method selectMethodByMethodId(Long methodId);

    /**
     * 查询方法列表
     *
     * @param method 方法
     * @return 方法集合
     */
    public List<Method> selectMethodList(Method method);

    /**
     * 新增方法
     *
     * @param method 方法
     * @return 结果
     */
    public int insertMethod(Method method);

    /**
     * 修改方法
     *
     * @param method 方法
     * @return 结果
     */
    public int updateMethod(Method method);
    public int updateMethodByMethodNo(Method method);

    /**
     * 删除方法
     *
     * @param methodId 方法主键
     * @return 结果
     */
    public int deleteMethodByMethodId(Long methodId);

    /**
     * 批量删除方法
     *
     * @param methodIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMethodByMethodIds(Long[] methodIds);

    /**
     * 检查名称是否唯一
     *
     * @param methodName
     * @param typeId
     * @return 结果
     */
    public Method checkMethodNameUnique(@Param("methodName")String methodName, @Param("typeId")Long typeId);

    /**
     * 根据前缀获取最新编码
     *
     * @param syscode 前缀
     * @return 结果
     */
    public String getCode(@Param("syscode") String syscode);
}
